{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备工作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "import pandas as pd\n",
    "import json\n",
    "map13='b275ce7289938d8cbaa169005e71e6da'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 地理编码\n",
    "应用场景:用户可以调用此函数获取某个地址的具体地理编码信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中地理编码函数\n",
    "from geo import geocode"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'count': '1',\n",
       " 'geocodes': [{'formatted_address': '广东省广州市从化区中山大学南方学院',\n",
       "   'country': '中国',\n",
       "   'province': '广东省',\n",
       "   'citycode': '020',\n",
       "   'city': '广州市',\n",
       "   'district': '从化区',\n",
       "   'township': [],\n",
       "   'neighborhood': {'name': [], 'type': []},\n",
       "   'building': {'name': [], 'type': []},\n",
       "   'adcode': '440117',\n",
       "   'street': [],\n",
       "   'number': [],\n",
       "   'location': '113.679287,23.632575',\n",
       "   'level': '兴趣点'}]}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我选择获取中大南方的地理编码\n",
    "geocode(map13,\"广东省广州市从化区中山大学南方学院\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 逆地理编码\n",
    "应用场景:用户可以调用此函数根据已有的地理编码（经纬度）转换为详细结构化的地址"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中逆地理编码函数\n",
    "from geo import regeocode"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'regeocode': {'addressComponent': {'city': '西安市',\n",
       "   'province': '陕西省',\n",
       "   'adcode': '610112',\n",
       "   'district': '未央区',\n",
       "   'towncode': '610112001000',\n",
       "   'streetNumber': {'number': '109-2号楼',\n",
       "    'location': '108.939840,34.341307',\n",
       "    'direction': '西南',\n",
       "    'distance': '42.2243',\n",
       "    'street': '凤城八路'},\n",
       "   'country': '中国',\n",
       "   'township': '张家堡街道',\n",
       "   'businessAreas': [{'location': '108.948968,34.338423',\n",
       "     'name': '张家堡',\n",
       "     'id': '610112'},\n",
       "    {'location': '108.937522,34.327194', 'name': '经济技术开发区', 'id': '610112'}],\n",
       "   'building': {'name': [], 'type': []},\n",
       "   'neighborhood': {'name': [], 'type': []},\n",
       "   'citycode': '029'},\n",
       "  'formatted_address': '陕西省西安市未央区张家堡街道西安市城管执法局西安市人民政府'},\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000'}"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里查询的是陕西西安的详细结构化地址\n",
    "regeocode(map13,'108.940174,34.341568')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 路径规划(步行)\n",
    "应用场景:用户可以调用此函数规划短距离(100KM以内)的步行/跑步路径,获取具体步行/跑步方案的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中路径规划(步行)函数\n",
    "from geo import walk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'ok',\n",
       " 'infocode': '10000',\n",
       " 'count': '1',\n",
       " 'route': {'origin': '113.678280,23.628439',\n",
       "  'destination': '113.680193,23.634281',\n",
       "  'paths': [{'distance': '854',\n",
       "    'duration': '683',\n",
       "    'steps': [{'instruction': '向北步行229米右转',\n",
       "      'orientation': '北',\n",
       "      'road': [],\n",
       "      'distance': '229',\n",
       "      'duration': '183',\n",
       "      'polyline': '113.678277,23.628438;113.67829,23.628607;113.67829,23.628607;113.678312,23.62872;113.678364,23.628837;113.67842,23.628898;113.678633,23.629019;113.678685,23.62908;113.678711,23.629188;113.678711,23.629336;113.678711,23.629336;113.678711,23.63036',\n",
       "      'action': '右转',\n",
       "      'assistant_action': [],\n",
       "      'walk_type': '0'},\n",
       "     {'instruction': '向东步行159米向左前方行走',\n",
       "      'orientation': '东',\n",
       "      'road': [],\n",
       "      'distance': '159',\n",
       "      'duration': '127',\n",
       "      'polyline': '113.678711,23.63036;113.678876,23.630399;113.678876,23.630399;113.679028,23.630425;113.679028,23.630425;113.679197,23.630469;113.679197,23.630469;113.679358,23.630516;113.67964,23.630634;113.67964,23.630634;113.68003,23.630768;113.68003,23.630768;113.680204,23.630838',\n",
       "      'action': '向左前方行走',\n",
       "      'assistant_action': [],\n",
       "      'walk_type': '0'},\n",
       "     {'instruction': '向北步行398米左转',\n",
       "      'orientation': '北',\n",
       "      'road': [],\n",
       "      'distance': '398',\n",
       "      'duration': '318',\n",
       "      'polyline': '113.680204,23.630838;113.680404,23.631089;113.680495,23.631237;113.680586,23.631432;113.680586,23.631432;113.680629,23.631536;113.680668,23.631736;113.680642,23.632135;113.68059,23.632522;113.68059,23.632522;113.680573,23.632674;113.680577,23.63283;113.680629,23.633012;113.680877,23.633442;113.680959,23.63378;113.680959,23.63378;113.680959,23.633954;113.680872,23.63424',\n",
       "      'action': '左转',\n",
       "      'assistant_action': [],\n",
       "      'walk_type': '0'},\n",
       "     {'instruction': '向西步行68米到达目的地',\n",
       "      'orientation': '西',\n",
       "      'road': [],\n",
       "      'distance': '68',\n",
       "      'duration': '54',\n",
       "      'polyline': '113.680868,23.63424;113.680603,23.63424;113.680603,23.63424;113.680195,23.63424',\n",
       "      'action': [],\n",
       "      'assistant_action': '到达目的地',\n",
       "      'walk_type': '0'}]}]}}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里分析的是中大南方南门到我的宿舍东13的步行路径\n",
    "walk(map13,'113.678280,23.628439','113.680193,23.634281')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instruction</th>\n",
       "      <th>orientation</th>\n",
       "      <th>road</th>\n",
       "      <th>distance</th>\n",
       "      <th>duration</th>\n",
       "      <th>polyline</th>\n",
       "      <th>action</th>\n",
       "      <th>assistant_action</th>\n",
       "      <th>walk_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>向北步行229米右转</td>\n",
       "      <td>北</td>\n",
       "      <td>[]</td>\n",
       "      <td>229</td>\n",
       "      <td>183</td>\n",
       "      <td>113.678277,23.628438;113.67829,23.628607;113.6...</td>\n",
       "      <td>右转</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>向东步行159米向左前方行走</td>\n",
       "      <td>东</td>\n",
       "      <td>[]</td>\n",
       "      <td>159</td>\n",
       "      <td>127</td>\n",
       "      <td>113.678711,23.63036;113.678876,23.630399;113.6...</td>\n",
       "      <td>向左前方行走</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>向北步行398米左转</td>\n",
       "      <td>北</td>\n",
       "      <td>[]</td>\n",
       "      <td>398</td>\n",
       "      <td>318</td>\n",
       "      <td>113.680204,23.630838;113.680404,23.631089;113....</td>\n",
       "      <td>左转</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>向西步行68米到达目的地</td>\n",
       "      <td>西</td>\n",
       "      <td>[]</td>\n",
       "      <td>68</td>\n",
       "      <td>54</td>\n",
       "      <td>113.680868,23.63424;113.680603,23.63424;113.68...</td>\n",
       "      <td>[]</td>\n",
       "      <td>到达目的地</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      instruction orientation road distance duration  \\\n",
       "0      向北步行229米右转           北   []      229      183   \n",
       "1  向东步行159米向左前方行走           东   []      159      127   \n",
       "2      向北步行398米左转           北   []      398      318   \n",
       "3    向西步行68米到达目的地           西   []       68       54   \n",
       "\n",
       "                                            polyline  action assistant_action  \\\n",
       "0  113.678277,23.628438;113.67829,23.628607;113.6...      右转               []   \n",
       "1  113.678711,23.63036;113.678876,23.630399;113.6...  向左前方行走               []   \n",
       "2  113.680204,23.630838;113.680404,23.631089;113....      左转               []   \n",
       "3  113.680868,23.63424;113.680603,23.63424;113.68...      []            到达目的地   \n",
       "\n",
       "  walk_type  \n",
       "0         0  \n",
       "1         0  \n",
       "2         0  \n",
       "3         0  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里用pandas展示清晰的行走步骤方案\n",
    "df = pd.json_normalize(walk(map13,'113.678280,23.628439','113.680193,23.634281')['route']['paths'][0]['steps'])\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 路径规划(公交)\n",
    "应用场景:用户可以调用此函数规划综合各类公共（火车、公交、地铁）交通方式的通勤方案,得知出行的搭车线路流程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中路径规划(公交)函数\n",
    "from geo import bus"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'count': '3',\n",
       " 'route': {'origin': '113.679287,23.632575',\n",
       "  'destination': '113.632403,23.616941',\n",
       "  'distance': '5961',\n",
       "  'taxi_cost': '25',\n",
       "  'transits': [{'cost': '2.0',\n",
       "    'duration': '2543',\n",
       "    'nightflag': '0',\n",
       "    'walking_distance': '691',\n",
       "    'distance': '9193',\n",
       "    'missed': '0',\n",
       "    'segments': [{'taxi': [],\n",
       "      'walking': {'origin': '113.679016,23.632349',\n",
       "       'destination': '113.676613,23.631285',\n",
       "       'distance': '513',\n",
       "       'duration': '439',\n",
       "       'steps': [{'instruction': '步行57米右转',\n",
       "         'road': [],\n",
       "         'distance': '57',\n",
       "         'duration': [],\n",
       "         'polyline': '113.679016,23.632349;113.678528,23.632097',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行47米向左前方行走',\n",
       "         'road': [],\n",
       "         'distance': '47',\n",
       "         'duration': [],\n",
       "         'polyline': '113.678528,23.632092;113.678398,23.632166;113.678101,23.632261',\n",
       "         'action': '向左前方行走',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行218米左转',\n",
       "         'road': [],\n",
       "         'distance': '218',\n",
       "         'duration': [],\n",
       "         'polyline': '113.678101,23.632261;113.677834,23.632261;113.677551,23.632200;113.677399,23.632179;113.677284,23.632200;113.677177,23.632244;113.677017,23.632357;113.676811,23.632534;113.676582,23.632778;113.676430,23.632904;113.676292,23.632969',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '沿博学路步行191米到达中大南方学院',\n",
       "         'road': '博学路',\n",
       "         'distance': '191',\n",
       "         'duration': [],\n",
       "         'polyline': '113.676285,23.632969;113.676292,23.632227;113.676338,23.631948;113.676430,23.631676;113.676491,23.631540;113.676613,23.631285',\n",
       "         'action': [],\n",
       "         'assistant_action': '到达中大南方学院'}]},\n",
       "      'bus': {'buslines': [{'departure_stop': {'name': '中大南方学院',\n",
       "          'id': '900000111141002',\n",
       "          'location': '113.676613,23.631281'},\n",
       "         'arrival_stop': {'name': '温泉镇政府',\n",
       "          'id': '900000111141008',\n",
       "          'location': '113.632957,23.615774'},\n",
       "         'name': '从15路(中大南方学院--从化汽车站总站)',\n",
       "         'id': '900000111141',\n",
       "         'type': '普通公交线路',\n",
       "         'distance': '8502',\n",
       "         'duration': '1951',\n",
       "         'polyline': '113.676613,23.631281;113.676460,23.631588;113.676430,23.631672;113.676338,23.631945;113.676292,23.632223;113.676285,23.632969;113.676285,23.633560;113.676300,23.633738;113.676331,23.633875;113.676399,23.634016;113.676460,23.634111;113.676521,23.634193;113.676781,23.634409;113.676857,23.634357;113.676933,23.634340;113.677032,23.634354;113.677094,23.634396;113.677139,23.634459;113.677147,23.634535;113.677139,23.634600;113.677086,23.634663;113.677032,23.634701;113.676918,23.634718;113.676857,23.634701;113.676788,23.634657;113.675262,23.636129;113.675156,23.636263;113.675026,23.636467;113.674973,23.636566;113.674957,23.636702;113.674957,23.636845;113.674995,23.636995;113.675377,23.637886;113.675430,23.638042;113.675522,23.638659;113.675529,23.638998;113.675514,23.639132;113.675446,23.639311;113.675331,23.639582;113.675102,23.640036;113.675003,23.640186;113.674309,23.641024;113.673347,23.642139;113.672981,23.642536;113.672935,23.642578;113.672173,23.643307;113.671707,23.643766;113.671432,23.644045;113.673103,23.644968;113.674362,23.645651;113.675461,23.646276;113.675964,23.646635;113.676407,23.647018;113.676376,23.647089;113.675964,23.646744;113.675735,23.646566;113.675468,23.646385;113.675095,23.646172;113.673004,23.645004;113.669968,23.643330;113.669167,23.642881;113.668770,23.642673;113.668594,23.642578;113.667007,23.641693;113.666145,23.641171;113.665314,23.640564;113.665253,23.640511;113.665016,23.640301;113.664772,23.640064;113.664551,23.639812;113.664406,23.639662;113.664207,23.639400;113.663925,23.639021;113.663574,23.638451;113.663361,23.638020;113.662323,23.635933;113.661949,23.635181;113.661461,23.634266;113.661224,23.633898;113.660843,23.633383;113.660683,23.633192;113.660248,23.632704;113.659721,23.632172;113.659370,23.631880;113.659256,23.631794;113.658989,23.631588;113.658897,23.631519;113.658211,23.631102;113.657707,23.630760;113.657425,23.630590;113.656944,23.630304;113.656940,23.630304;113.654336,23.628741;113.653850,23.628416;113.653598,23.628225;113.652383,23.627179;113.650165,23.625326;113.650022,23.625221;113.649766,23.625013;113.649731,23.624987;113.649731,23.624983;113.648980,23.624384;113.648611,23.624063;113.647843,23.623442;113.647361,23.623090;113.646780,23.622721;113.646345,23.622465;113.645981,23.622287;113.645595,23.622131;113.645117,23.621992;113.644709,23.621914;113.644640,23.621901;113.644635,23.621901;113.644375,23.621862;113.643255,23.621749;113.642578,23.621667;113.642474,23.621645;113.642027,23.621541;113.641450,23.621354;113.640525,23.621033;113.639332,23.620603;113.639184,23.620543;113.638850,23.620412;113.638433,23.620213;113.638325,23.620156;113.638329,23.620155;113.636047,23.618944;113.635544,23.618668;113.635254,23.618481;113.634750,23.618097;113.634514,23.617891;113.634254,23.617622;113.633980,23.617271;113.633636,23.616779;113.633057,23.615911;113.632957,23.615774',\n",
       "         'bustimetag': '0',\n",
       "         'start_time': '0900',\n",
       "         'end_time': '1800',\n",
       "         'via_num': '5',\n",
       "         'via_stops': [{'name': '卫东',\n",
       "           'id': '900000111141003',\n",
       "           'location': '113.671707,23.643766'},\n",
       "          {'name': '交警温泉中队',\n",
       "           'id': '900000111141029',\n",
       "           'location': '113.656944,23.630304'},\n",
       "          {'name': '冲口',\n",
       "           'id': '900000111141022',\n",
       "           'location': '113.649731,23.624987'},\n",
       "          {'name': '牛步迳',\n",
       "           'id': '900000111141006',\n",
       "           'location': '113.644640,23.621901'},\n",
       "          {'name': '华辉度假村',\n",
       "           'id': '900000111141023',\n",
       "           'location': '113.638325,23.620156'}]}]},\n",
       "      'entrance': [],\n",
       "      'exit': [],\n",
       "      'railway': {'via_stops': [], 'alters': [], 'spaces': []}},\n",
       "     {'taxi': [],\n",
       "      'walking': {'origin': '113.632965,23.615782',\n",
       "       'destination': '113.632225,23.616966',\n",
       "       'distance': '178',\n",
       "       'duration': '152',\n",
       "       'steps': [{'instruction': '沿温泉大道步行16米左转',\n",
       "         'road': '温泉大道',\n",
       "         'distance': '16',\n",
       "         'duration': [],\n",
       "         'polyline': '113.632965,23.615782;113.633057,23.615911',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行96米右转',\n",
       "         'road': [],\n",
       "         'distance': '96',\n",
       "         'duration': [],\n",
       "         'polyline': '113.633057,23.615911;113.632744,23.616102;113.632271,23.616385',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行66米',\n",
       "         'road': [],\n",
       "         'distance': '66',\n",
       "         'duration': [],\n",
       "         'polyline': '113.632271,23.616385;113.632286,23.616541;113.632317,23.616688;113.632217,23.616898;113.632217,23.616932;113.632225,23.616966',\n",
       "         'action': [],\n",
       "         'assistant_action': []}]},\n",
       "      'bus': {'buslines': []},\n",
       "      'entrance': [],\n",
       "      'exit': [],\n",
       "      'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]},\n",
       "   {'cost': '2.0',\n",
       "    'duration': '4503',\n",
       "    'nightflag': '0',\n",
       "    'walking_distance': '2135',\n",
       "    'distance': '10547',\n",
       "    'missed': '0',\n",
       "    'segments': [{'taxi': [],\n",
       "      'walking': {'origin': '113.679588,23.632492',\n",
       "       'destination': '113.675644,23.619991',\n",
       "       'distance': '1957',\n",
       "       'duration': '1677',\n",
       "       'steps': [{'instruction': '步行101米右转',\n",
       "         'road': [],\n",
       "         'distance': '101',\n",
       "         'duration': [],\n",
       "         'polyline': '113.679588,23.632492;113.680588,23.632523',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行199米向右前方行走',\n",
       "         'road': [],\n",
       "         'distance': '199',\n",
       "         'duration': [],\n",
       "         'polyline': '113.680588,23.632523;113.680641,23.632139;113.680672,23.631741;113.680634,23.631540;113.680588,23.631437;113.680496,23.631241;113.680405,23.631094;113.680206,23.630842',\n",
       "         'action': '向右前方行走',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行159米左转',\n",
       "         'road': [],\n",
       "         'distance': '159',\n",
       "         'duration': [],\n",
       "         'polyline': '113.680206,23.630838;113.680038,23.630772;113.679642,23.630638;113.679359,23.630522;113.679199,23.630472;113.679031,23.630430;113.678879,23.630404;113.678711,23.630365',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行237米左转',\n",
       "         'road': [],\n",
       "         'distance': '237',\n",
       "         'duration': [],\n",
       "         'polyline': '113.678711,23.630360;113.678711,23.629341;113.678711,23.629192;113.678688,23.629084;113.678635,23.629023;113.678421,23.628902;113.678368,23.628841;113.678314,23.628723;113.678291,23.628611;113.678276,23.628372',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行498米向右前方行走',\n",
       "         'road': [],\n",
       "         'distance': '498',\n",
       "         'duration': [],\n",
       "         'polyline': '113.678276,23.628368;113.678574,23.628338;113.678688,23.628307;113.678848,23.628233;113.679047,23.628073;113.679161,23.627964;113.679214,23.627869;113.679237,23.627777;113.679283,23.627525;113.679291,23.627321;113.679253,23.626854;113.679184,23.626623;113.679138,23.626497;113.679001,23.626259;113.678940,23.626177;113.678711,23.625977;113.678619,23.625864;113.678528,23.625721;113.678436,23.625191;113.678429,23.625057;113.678452,23.624939;113.678574,23.624657',\n",
       "         'action': '向右前方行走',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行722米左转',\n",
       "         'road': [],\n",
       "         'distance': '722',\n",
       "         'duration': [],\n",
       "         'polyline': '113.678574,23.624653;113.678558,23.624510;113.678413,23.624323;113.677582,23.623793;113.676529,23.623346;113.676361,23.623255;113.676270,23.623152;113.676109,23.622833;113.676041,23.622738;113.675789,23.622482;113.675499,23.622278;113.675415,23.622175;113.675385,23.622087;113.675377,23.621836;113.675392,23.621611;113.675430,23.621475;113.675545,23.621359;113.675766,23.621181;113.675850,23.621090;113.675903,23.620995;113.675903,23.620855;113.675880,23.620726;113.675743,23.620546;113.675598,23.620373;113.675240,23.620012',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行41米到达松浪社',\n",
       "         'road': [],\n",
       "         'distance': '41',\n",
       "         'duration': [],\n",
       "         'polyline': '113.675240,23.620008;113.675491,23.620012;113.675644,23.619991;113.675644,23.619991',\n",
       "         'action': [],\n",
       "         'assistant_action': '到达松浪社'}]},\n",
       "      'bus': {'buslines': [{'departure_stop': {'name': '松浪社',\n",
       "          'id': '900000111143034',\n",
       "          'location': '113.675629,23.619987'},\n",
       "         'arrival_stop': {'name': '温泉镇政府',\n",
       "          'id': '900000111143005',\n",
       "          'location': '113.632881,23.615646'},\n",
       "         'name': '从20路(乌土村委总站--从化汽车站总站)',\n",
       "         'id': '900000111143',\n",
       "         'type': '普通公交线路',\n",
       "         'distance': '8412',\n",
       "         'duration': '2673',\n",
       "         'polyline': '113.675629,23.619987;113.675301,23.620045;113.675201,23.619968;113.674934,23.619713;113.673920,23.618620;113.673691,23.618429;113.673454,23.618334;113.673218,23.618269;113.671082,23.617786;113.667892,23.617096;113.666336,23.616735;113.665916,23.616650;113.664551,23.616346;113.663689,23.616152;113.663544,23.616119;113.663223,23.616043;113.662567,23.615911;113.662025,23.615803;113.661682,23.615711;113.660400,23.615417;113.660004,23.615669;113.659927,23.615711;113.659088,23.616234;113.657166,23.617487;113.656975,23.617626;113.656815,23.617783;113.655830,23.618845;113.655678,23.618971;113.655548,23.619076;113.655411,23.619141;113.655281,23.619188;113.655083,23.619236;113.654747,23.619293;113.654518,23.619307;113.654320,23.619303;113.653976,23.619244;113.652885,23.619011;113.652718,23.618984;113.652573,23.618984;113.652428,23.619015;113.651825,23.619240;113.650818,23.619617;113.649361,23.619949;113.648819,23.620077;113.648354,23.620222;113.648087,23.620314;113.647858,23.620438;113.647621,23.620604;113.647377,23.620783;113.647179,23.620893;113.646973,23.620993;113.646477,23.621176;113.646317,23.621258;113.645866,23.621567;113.645721,23.621698;113.645721,23.621876;113.645821,23.622089;113.646248,23.622282;113.646629,23.622496;113.647217,23.622856;113.647697,23.623178;113.648071,23.623466;113.649094,23.624311;113.649666,23.624836;113.649811,23.624950;113.650055,23.625156;113.650192,23.625296;113.652588,23.627287;113.652748,23.627409;113.653603,23.628078;113.654411,23.628637;113.655273,23.629168;113.657509,23.630495;113.657425,23.630590;113.657120,23.630409;113.654335,23.628742;113.653847,23.628416;113.653603,23.628225;113.652382,23.627178;113.650169,23.625324;113.650017,23.625223;113.649773,23.625013;113.649742,23.624990;113.649734,23.624990;113.648926,23.624327;113.647842,23.623442;113.647362,23.623091;113.646782,23.622723;113.646347,23.622465;113.645981,23.622286;113.645592,23.622131;113.645119,23.621990;113.644714,23.621914;113.644516,23.621885;113.644521,23.621890;113.644371,23.621862;113.643257,23.621748;113.642578,23.621666;113.642471,23.621645;113.642029,23.621540;113.641449,23.621353;113.640526,23.621033;113.639336,23.620604;113.639183,23.620543;113.638855,23.620413;113.638474,23.620235;113.636047,23.618944;113.635544,23.618668;113.635254,23.618481;113.634750,23.618097;113.634514,23.617891;113.634254,23.617622;113.633980,23.617271;113.633636,23.616779;113.633057,23.615911;113.632881,23.615646',\n",
       "         'bustimetag': '0',\n",
       "         'start_time': '0830',\n",
       "         'end_time': '1900',\n",
       "         'via_num': '5',\n",
       "         'via_stops': [{'name': '源湖村五社',\n",
       "           'id': '900000111143035',\n",
       "           'location': '113.663689,23.616152'},\n",
       "          {'name': '源湖村',\n",
       "           'id': '900000111143036',\n",
       "           'location': '113.659927,23.615711'},\n",
       "          {'name': '温泉交警中队',\n",
       "           'id': '900000111143003',\n",
       "           'location': '113.657120,23.630409'},\n",
       "          {'name': '冲口',\n",
       "           'id': '900000111143031',\n",
       "           'location': '113.649742,23.624990'},\n",
       "          {'name': '牛步迳',\n",
       "           'id': '900000111143004',\n",
       "           'location': '113.644516,23.621885'}]}]},\n",
       "      'entrance': [],\n",
       "      'exit': [],\n",
       "      'railway': {'via_stops': [], 'alters': [], 'spaces': []}},\n",
       "     {'taxi': [],\n",
       "      'walking': {'origin': '113.632965,23.615782',\n",
       "       'destination': '113.632225,23.616966',\n",
       "       'distance': '178',\n",
       "       'duration': '152',\n",
       "       'steps': [{'instruction': '沿温泉大道步行16米左转',\n",
       "         'road': '温泉大道',\n",
       "         'distance': '16',\n",
       "         'duration': [],\n",
       "         'polyline': '113.632965,23.615782;113.633057,23.615911',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行96米右转',\n",
       "         'road': [],\n",
       "         'distance': '96',\n",
       "         'duration': [],\n",
       "         'polyline': '113.633057,23.615911;113.632744,23.616102;113.632271,23.616385',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行66米',\n",
       "         'road': [],\n",
       "         'distance': '66',\n",
       "         'duration': [],\n",
       "         'polyline': '113.632271,23.616385;113.632286,23.616541;113.632317,23.616688;113.632217,23.616898;113.632217,23.616932;113.632225,23.616966',\n",
       "         'action': [],\n",
       "         'assistant_action': []}]},\n",
       "      'bus': {'buslines': []},\n",
       "      'entrance': [],\n",
       "      'exit': [],\n",
       "      'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]},\n",
       "   {'cost': '2.0',\n",
       "    'duration': '3450',\n",
       "    'nightflag': '0',\n",
       "    'walking_distance': '2731',\n",
       "    'distance': '8947',\n",
       "    'missed': '0',\n",
       "    'segments': [{'taxi': [],\n",
       "      'walking': {'origin': '113.679588,23.632856',\n",
       "       'destination': '113.677689,23.648291',\n",
       "       'distance': '2553',\n",
       "       'duration': '2188',\n",
       "       'steps': [{'instruction': '步行92米向左前方行走',\n",
       "         'road': [],\n",
       "         'distance': '92',\n",
       "         'duration': [],\n",
       "         'polyline': '113.679588,23.632856;113.679588,23.633173;113.679588,23.633251;113.679619,23.633650;113.679649,23.633690',\n",
       "         'action': '向左前方行走',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '沿博学路步行197米左转',\n",
       "         'road': '博学路',\n",
       "         'distance': '197',\n",
       "         'duration': [],\n",
       "         'polyline': '113.679649,23.633690;113.679550,23.633966;113.679375,23.634357;113.679253,23.634480;113.679062,23.634657;113.678932,23.634762;113.678711,23.634918;113.678635,23.634970;113.678596,23.635031;113.678558,23.635109',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '沿博学路步行163米右转',\n",
       "         'road': '博学路',\n",
       "         'distance': '163',\n",
       "         'duration': [],\n",
       "         'polyline': '113.678558,23.635109;113.677856,23.635092;113.677612,23.635035;113.677536,23.634996;113.677330,23.634857;113.677086,23.634670',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '沿博学路步行33米右转',\n",
       "         'road': '博学路',\n",
       "         'distance': '33',\n",
       "         'duration': [],\n",
       "         'polyline': '113.677086,23.634666;113.677025,23.634701;113.676918,23.634718;113.676857,23.634705;113.676796,23.634661',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '沿中山路步行1265米右转',\n",
       "         'road': '中山路',\n",
       "         'distance': '1265',\n",
       "         'duration': [],\n",
       "         'polyline': '113.676796,23.634657;113.675270,23.636129;113.675156,23.636263;113.675026,23.636467;113.674973,23.636566;113.674957,23.636702;113.674957,23.636845;113.674988,23.636997;113.675385,23.637886;113.675430,23.638042;113.675522,23.638659;113.675522,23.638998;113.675507,23.639132;113.675453,23.639311;113.675331,23.639584;113.675110,23.640036;113.675003,23.640186;113.674316,23.641024;113.673363,23.642139;113.672981,23.642534;113.672173,23.643303;113.671425,23.644045',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '沿温泉大道步行760米向左前方行走',\n",
       "         'road': '温泉大道',\n",
       "         'distance': '760',\n",
       "         'duration': [],\n",
       "         'polyline': '113.671425,23.644045;113.671638,23.644163;113.673103,23.644970;113.673950,23.645426;113.674370,23.645651;113.675461,23.646276;113.675964,23.646637;113.676407,23.647018;113.677444,23.647964;113.677498,23.648012',\n",
       "         'action': '向左前方行走',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行8米右转',\n",
       "         'road': [],\n",
       "         'distance': '8',\n",
       "         'duration': [],\n",
       "         'polyline': '113.677498,23.648012;113.677444,23.648064',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '沿温泉大道步行35米到达三层路口',\n",
       "         'road': '温泉大道',\n",
       "         'distance': '35',\n",
       "         'duration': [],\n",
       "         'polyline': '113.677444,23.648069;113.677689,23.648291',\n",
       "         'action': [],\n",
       "         'assistant_action': '到达三层路口'}]},\n",
       "      'bus': {'buslines': [{'departure_stop': {'name': '三层路口',\n",
       "          'id': '900000069692027',\n",
       "          'location': '113.677597,23.648211'},\n",
       "         'arrival_stop': {'name': '温泉镇政府',\n",
       "          'id': '900000069692029',\n",
       "          'location': '113.632960,23.615768'},\n",
       "         'name': '从11路(良口客运站总站--从化汽车站总站)',\n",
       "         'id': '900000069692',\n",
       "         'type': '普通公交线路',\n",
       "         'distance': '6216',\n",
       "         'duration': '1110',\n",
       "         'polyline': '113.677597,23.648211;113.677376,23.648016;113.676376,23.647089;113.675964,23.646744;113.675735,23.646566;113.675468,23.646385;113.675095,23.646172;113.674744,23.645973;113.673363,23.645201;113.673004,23.645004;113.671715,23.644299;113.671715,23.644293;113.670654,23.643707;113.669968,23.643330;113.668770,23.642673;113.668594,23.642578;113.667007,23.641693;113.666145,23.641171;113.665314,23.640564;113.665253,23.640511;113.665016,23.640301;113.664772,23.640064;113.664551,23.639812;113.664406,23.639662;113.664207,23.639400;113.663925,23.639021;113.663574,23.638451;113.663361,23.638020;113.662323,23.635933;113.661949,23.635181;113.661461,23.634266;113.661224,23.633898;113.660843,23.633383;113.660683,23.633192;113.660278,23.632727;113.659721,23.632172;113.659370,23.631880;113.659256,23.631794;113.658989,23.631588;113.658897,23.631519;113.658226,23.631102;113.657707,23.630760;113.657425,23.630590;113.657120,23.630413;113.657118,23.630408;113.654336,23.628741;113.653850,23.628416;113.653598,23.628225;113.652674,23.627422;113.650165,23.625326;113.650022,23.625221;113.649766,23.625013;113.648924,23.624327;113.647843,23.623442;113.647361,23.623090;113.646780,23.622721;113.646345,23.622465;113.645981,23.622287;113.645595,23.622131;113.645117,23.621992;113.644709,23.621914;113.644414,23.621871;113.644410,23.621871;113.644375,23.621862;113.643255,23.621749;113.642578,23.621667;113.642474,23.621645;113.642027,23.621541;113.641450,23.621354;113.640525,23.621033;113.639332,23.620603;113.639184,23.620543;113.638850,23.620412;113.638433,23.620213;113.638329,23.620156;113.638325,23.620156;113.636046,23.618945;113.635543,23.618668;113.635252,23.618481;113.634748,23.618099;113.634518,23.617891;113.634262,23.617622;113.633980,23.617270;113.633633,23.616780;113.633056,23.615911;113.632960,23.615768',\n",
       "         'bustimetag': '0',\n",
       "         'start_time': '0630',\n",
       "         'end_time': '1930',\n",
       "         'via_num': '4',\n",
       "         'via_stops': [{'name': '卫东',\n",
       "           'id': '900000069692010',\n",
       "           'location': '113.671715,23.644299'},\n",
       "          {'name': '温泉交警中队',\n",
       "           'id': '900000069692011',\n",
       "           'location': '113.657120,23.630413'},\n",
       "          {'name': '牛步迳',\n",
       "           'id': '900000069692028',\n",
       "           'location': '113.644414,23.621871'},\n",
       "          {'name': '华辉度假村',\n",
       "           'id': '900000069692038',\n",
       "           'location': '113.638329,23.620156'}]},\n",
       "        {'departure_stop': {'name': '三层路口',\n",
       "          'id': '900000069254022',\n",
       "          'location': '113.677689,23.648294'},\n",
       "         'arrival_stop': {'name': '温泉镇政府',\n",
       "          'id': '900000069254025',\n",
       "          'location': '113.632917,23.615699'},\n",
       "         'name': '从12路(吕田客运站总站--从化汽车站总站)',\n",
       "         'id': '900000069254',\n",
       "         'type': '普通公交线路',\n",
       "         'distance': '6340',\n",
       "         'duration': '1111',\n",
       "         'polyline': '113.677689,23.648294;113.677687,23.648290;113.677378,23.648016;113.676372,23.647088;113.675964,23.646745;113.675734,23.646567;113.675464,23.646385;113.675095,23.646172;113.673003,23.645004;113.671771,23.644327;113.671771,23.644323;113.669961,23.643329;113.669162,23.642882;113.668776,23.642674;113.668598,23.642578;113.667001,23.641693;113.666141,23.641172;113.665317,23.640564;113.665252,23.640512;113.665017,23.640299;113.664774,23.640065;113.664549,23.639813;113.664410,23.639661;113.664201,23.639401;113.663928,23.639019;113.663576,23.638451;113.663359,23.638021;113.662322,23.635933;113.661949,23.635182;113.661454,23.634266;113.661224,23.633898;113.660842,23.633381;113.660686,23.633190;113.660252,23.632704;113.659722,23.632170;113.659366,23.631879;113.659258,23.631793;113.658984,23.631589;113.658893,23.631519;113.658212,23.631102;113.657708,23.630760;113.657426,23.630590;113.656984,23.630330;113.656984,23.630326;113.654336,23.628741;113.653850,23.628416;113.653598,23.628225;113.652674,23.627422;113.652370,23.627261;113.652114,23.627062;113.651510,23.626654;113.651363,23.626554;113.651050,23.626315;113.650573,23.625885;113.650091,23.625378;113.649970,23.625269;113.649822,23.625143;113.649766,23.625013;113.648980,23.624384;113.648611,23.624063;113.647843,23.623442;113.647361,23.623090;113.646780,23.622721;113.646345,23.622465;113.645981,23.622287;113.645595,23.622131;113.645117,23.621992;113.644709,23.621914;113.644661,23.621905;113.644669,23.621906;113.644666,23.621905;113.644375,23.621862;113.643255,23.621749;113.642578,23.621667;113.642474,23.621645;113.642027,23.621541;113.641450,23.621354;113.640525,23.621033;113.639332,23.620603;113.639184,23.620543;113.638850,23.620412;113.638472,23.620234;113.638355,23.620174;113.638355,23.620169;113.636046,23.618945;113.635543,23.618668;113.635252,23.618481;113.634748,23.618099;113.634518,23.617891;113.634262,23.617622;113.633980,23.617270;113.633633,23.616780;113.633056,23.615911;113.632917,23.615699',\n",
       "         'bustimetag': '0',\n",
       "         'start_time': '0630',\n",
       "         'end_time': '1900',\n",
       "         'via_num': '4',\n",
       "         'via_stops': [{'name': '卫东',\n",
       "           'id': '900000069254023',\n",
       "           'location': '113.671771,23.644327'},\n",
       "          {'name': '温泉交警中队',\n",
       "           'id': '900000069254024',\n",
       "           'location': '113.656984,23.630330'},\n",
       "          {'name': '牛步径',\n",
       "           'id': '900000069254041',\n",
       "           'location': '113.644661,23.621905'},\n",
       "          {'name': '华辉度假村',\n",
       "           'id': '900000069254047',\n",
       "           'location': '113.638355,23.620174'}]}]},\n",
       "      'entrance': [],\n",
       "      'exit': [],\n",
       "      'railway': {'via_stops': [], 'alters': [], 'spaces': []}},\n",
       "     {'taxi': [],\n",
       "      'walking': {'origin': '113.632965,23.615782',\n",
       "       'destination': '113.632225,23.616966',\n",
       "       'distance': '178',\n",
       "       'duration': '152',\n",
       "       'steps': [{'instruction': '沿温泉大道步行16米左转',\n",
       "         'road': '温泉大道',\n",
       "         'distance': '16',\n",
       "         'duration': [],\n",
       "         'polyline': '113.632965,23.615782;113.633057,23.615911',\n",
       "         'action': '左转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行96米右转',\n",
       "         'road': [],\n",
       "         'distance': '96',\n",
       "         'duration': [],\n",
       "         'polyline': '113.633057,23.615911;113.632744,23.616102;113.632271,23.616385',\n",
       "         'action': '右转',\n",
       "         'assistant_action': []},\n",
       "        {'instruction': '步行66米',\n",
       "         'road': [],\n",
       "         'distance': '66',\n",
       "         'duration': [],\n",
       "         'polyline': '113.632271,23.616385;113.632286,23.616541;113.632317,23.616688;113.632217,23.616898;113.632217,23.616932;113.632225,23.616966',\n",
       "         'action': [],\n",
       "         'assistant_action': []}]},\n",
       "      'bus': {'buslines': []},\n",
       "      'entrance': [],\n",
       "      'exit': [],\n",
       "      'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]}]}}"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里分析的是中大南方到温泉镇的公交路径\n",
    "bus(map13,'113.679287,23.632575','113.632403,23.616941','广州')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>id</th>\n",
       "      <th>location</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>卫东</td>\n",
       "      <td>900000111141003</td>\n",
       "      <td>113.671707,23.643766</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>交警温泉中队</td>\n",
       "      <td>900000111141029</td>\n",
       "      <td>113.656944,23.630304</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>冲口</td>\n",
       "      <td>900000111141022</td>\n",
       "      <td>113.649731,23.624987</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>牛步迳</td>\n",
       "      <td>900000111141006</td>\n",
       "      <td>113.644640,23.621901</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>华辉度假村</td>\n",
       "      <td>900000111141023</td>\n",
       "      <td>113.638325,23.620156</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     name               id              location\n",
       "0      卫东  900000111141003  113.671707,23.643766\n",
       "1  交警温泉中队  900000111141029  113.656944,23.630304\n",
       "2      冲口  900000111141022  113.649731,23.624987\n",
       "3     牛步迳  900000111141006  113.644640,23.621901\n",
       "4   华辉度假村  900000111141023  113.638325,23.620156"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里用pandas展示路线1站点\n",
    "df = pd.json_normalize(bus(map13,'113.679287,23.632575','113.632403,23.616941','广州')['route']['transits'][0]['segments'][0]['bus']['buslines'][0]['via_stops'])\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>id</th>\n",
       "      <th>location</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>源湖村五社</td>\n",
       "      <td>900000111143035</td>\n",
       "      <td>113.663689,23.616152</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>源湖村</td>\n",
       "      <td>900000111143036</td>\n",
       "      <td>113.659927,23.615711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>温泉交警中队</td>\n",
       "      <td>900000111143003</td>\n",
       "      <td>113.657120,23.630409</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>冲口</td>\n",
       "      <td>900000111143031</td>\n",
       "      <td>113.649742,23.624990</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>牛步迳</td>\n",
       "      <td>900000111143004</td>\n",
       "      <td>113.644516,23.621885</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     name               id              location\n",
       "0   源湖村五社  900000111143035  113.663689,23.616152\n",
       "1     源湖村  900000111143036  113.659927,23.615711\n",
       "2  温泉交警中队  900000111143003  113.657120,23.630409\n",
       "3      冲口  900000111143031  113.649742,23.624990\n",
       "4     牛步迳  900000111143004  113.644516,23.621885"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里用pandas展示路线2站点\n",
    "df = pd.json_normalize(bus(map13,'113.679287,23.632575','113.632403,23.616941','广州')['route']['transits'][1]['segments'][0]['bus']['buslines'][0]['via_stops'])\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 路径规划(驾车)\n",
    "应用场景:用户可以调用此函数划以小客车、轿车通勤出行的方案,得知怎么开往目的地"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中路径规划(驾车)函数\n",
    "from geo import drive"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'count': '1',\n",
       " 'route': {'origin': '113.679287,23.632575',\n",
       "  'destination': '113.632403,23.616941',\n",
       "  'paths': [{'distance': '8314',\n",
       "    'duration': '917',\n",
       "    'strategy': '速度最快',\n",
       "    'tolls': '0',\n",
       "    'toll_distance': '0',\n",
       "    'steps': [{'instruction': '向北行驶122米向左前方行驶',\n",
       "      'orientation': '北',\n",
       "      'distance': '122',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '31',\n",
       "      'polyline': '113.679596,23.632574;113.679596,23.632856;113.679592,23.633173;113.679596,23.633251;113.679627,23.63365;113.679648,23.633689',\n",
       "      'action': '向左前方行驶',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '沿博学路向北行驶79米向左前方行驶',\n",
       "      'orientation': '北',\n",
       "      'road': '博学路',\n",
       "      'distance': '79',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '23',\n",
       "      'polyline': '113.679648,23.633689;113.679549,23.633967;113.679375,23.634358',\n",
       "      'action': '向左前方行驶',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '沿博学路向西北行驶118米左转',\n",
       "      'orientation': '西北',\n",
       "      'road': '博学路',\n",
       "      'distance': '118',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '30',\n",
       "      'polyline': '113.679375,23.634358;113.679249,23.634479;113.678932,23.634761;113.678711,23.634918;113.678628,23.63497;113.678594,23.63503;113.678555,23.635109',\n",
       "      'action': '左转',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '沿博学路向西行驶163米右转',\n",
       "      'orientation': '西',\n",
       "      'road': '博学路',\n",
       "      'distance': '163',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '35',\n",
       "      'polyline': '113.678555,23.635109;113.677856,23.635087;113.677613,23.63503;113.67753,23.634991;113.677326,23.634852;113.677083,23.634661',\n",
       "      'action': '右转',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '沿博学路向西行驶33米右转',\n",
       "      'orientation': '西',\n",
       "      'road': '博学路',\n",
       "      'distance': '33',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '13',\n",
       "      'polyline': '113.677083,23.634661;113.677027,23.634701;113.676918,23.634718;113.676849,23.634701;113.676788,23.634657',\n",
       "      'action': '右转',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '沿中山路向西北行驶1.3千米右转',\n",
       "      'orientation': '西北',\n",
       "      'road': '中山路',\n",
       "      'distance': '1265',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '285',\n",
       "      'polyline': '113.676788,23.634657;113.675265,23.636128;113.675152,23.636263;113.675026,23.636467;113.67497,23.636567;113.674957,23.636701;113.674957,23.636845;113.674991,23.636997;113.675378,23.637886;113.67543,23.638043;113.675521,23.638659;113.67553,23.638997;113.675508,23.639132;113.675447,23.63931;113.67533,23.639583;113.675104,23.640035;113.675,23.640187;113.67431,23.641024;113.673355,23.64214;113.672977,23.642535;113.672934,23.642578;113.67217,23.643307;113.671428,23.644045',\n",
       "      'action': '右转',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '沿温泉大道向东北行驶605米左转调头',\n",
       "      'orientation': '东北',\n",
       "      'road': '温泉大道',\n",
       "      'distance': '605',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '65',\n",
       "      'polyline': '113.671428,23.644045;113.671636,23.644162;113.673103,23.64497;113.673945,23.645425;113.674366,23.645651;113.67546,23.646276;113.675968,23.646636;113.676411,23.647018',\n",
       "      'action': '左转调头',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '沿温泉大道向西南行驶3.4千米靠左沿主路行驶',\n",
       "      'orientation': '西南',\n",
       "      'road': '温泉大道',\n",
       "      'distance': '3360',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '246',\n",
       "      'polyline': '113.676367,23.647088;113.675964,23.646745;113.675734,23.646567;113.675464,23.646385;113.675095,23.646172;113.673003,23.645004;113.669961,23.643329;113.669162,23.642882;113.668776,23.642674;113.668598,23.642578;113.667001,23.641693;113.666141,23.641172;113.665317,23.640564;113.665252,23.640512;113.665017,23.640299;113.664774,23.640065;113.664549,23.639813;113.66441,23.639661;113.664201,23.639401;113.663928,23.639019;113.663576,23.638451;113.663359,23.638021;113.662322,23.635933;113.661949,23.635182;113.661454,23.634266;113.661224,23.633898;113.660842,23.633381;113.660686,23.63319;113.660252,23.632704;113.659722,23.63217;113.659366,23.631879;113.659258,23.631793;113.658984,23.631589;113.658893,23.631519;113.658212,23.631102;113.65753,23.630651;113.654336,23.628741;113.65385,23.628416;113.653598,23.628225;113.652674,23.627422;113.652435,23.627222',\n",
       "      'action': '靠左',\n",
       "      'assistant_action': '沿主路行驶'},\n",
       "     {'instruction': '沿温泉大道向西南行驶2.4千米右转',\n",
       "      'orientation': '西南',\n",
       "      'road': '温泉大道',\n",
       "      'distance': '2405',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '128',\n",
       "      'polyline': '113.652435,23.627222;113.650165,23.625326;113.649766,23.625013;113.64898,23.624384;113.648611,23.624063;113.647843,23.623442;113.647361,23.62309;113.64678,23.622721;113.646345,23.622465;113.645981,23.622287;113.645595,23.622131;113.645117,23.621992;113.644709,23.621914;113.644375,23.621862;113.643255,23.621749;113.642578,23.621667;113.642474,23.621645;113.642027,23.621541;113.64145,23.621354;113.640525,23.621033;113.639332,23.620603;113.639184,23.620543;113.63885,23.620412;113.638433,23.620213;113.636046,23.618945;113.635543,23.618668;113.635252,23.618481;113.634748,23.618099;113.634518,23.617891;113.634262,23.617622;113.63398,23.61727;113.633633,23.61678;113.633056,23.615911',\n",
       "      'action': '右转',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '向西北行驶96米右转',\n",
       "      'orientation': '西北',\n",
       "      'distance': '96',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '26',\n",
       "      'polyline': '113.633056,23.615911;113.632743,23.616102;113.632266,23.616389',\n",
       "      'action': '右转',\n",
       "      'assistant_action': []},\n",
       "     {'instruction': '向北行驶68米到达目的地',\n",
       "      'orientation': '北',\n",
       "      'distance': '68',\n",
       "      'tolls': '0',\n",
       "      'toll_distance': '0',\n",
       "      'toll_road': [],\n",
       "      'duration': '35',\n",
       "      'polyline': '113.632266,23.616389;113.632287,23.616541;113.632313,23.616688;113.632214,23.616897;113.632214,23.616936;113.632222,23.616975',\n",
       "      'action': [],\n",
       "      'assistant_action': '到达目的地'}],\n",
       "    'restriction': '0',\n",
       "    'traffic_lights': '1'}]}}"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里同样分析的是中大南方到温泉镇的驾车路径\n",
    "drive(map13,'113.679287,23.632575','113.632403,23.616941')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instruction</th>\n",
       "      <th>orientation</th>\n",
       "      <th>distance</th>\n",
       "      <th>tolls</th>\n",
       "      <th>toll_distance</th>\n",
       "      <th>toll_road</th>\n",
       "      <th>duration</th>\n",
       "      <th>polyline</th>\n",
       "      <th>action</th>\n",
       "      <th>assistant_action</th>\n",
       "      <th>road</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>向北行驶122米向左前方行驶</td>\n",
       "      <td>北</td>\n",
       "      <td>122</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>31</td>\n",
       "      <td>113.679596,23.632574;113.679596,23.632856;113....</td>\n",
       "      <td>向左前方行驶</td>\n",
       "      <td>[]</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>沿博学路向北行驶79米向左前方行驶</td>\n",
       "      <td>北</td>\n",
       "      <td>79</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>23</td>\n",
       "      <td>113.679648,23.633689;113.679549,23.633967;113....</td>\n",
       "      <td>向左前方行驶</td>\n",
       "      <td>[]</td>\n",
       "      <td>博学路</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>沿博学路向西北行驶118米左转</td>\n",
       "      <td>西北</td>\n",
       "      <td>118</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>30</td>\n",
       "      <td>113.679375,23.634358;113.679249,23.634479;113....</td>\n",
       "      <td>左转</td>\n",
       "      <td>[]</td>\n",
       "      <td>博学路</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>沿博学路向西行驶163米右转</td>\n",
       "      <td>西</td>\n",
       "      <td>163</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>35</td>\n",
       "      <td>113.678555,23.635109;113.677856,23.635087;113....</td>\n",
       "      <td>右转</td>\n",
       "      <td>[]</td>\n",
       "      <td>博学路</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>沿博学路向西行驶33米右转</td>\n",
       "      <td>西</td>\n",
       "      <td>33</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>13</td>\n",
       "      <td>113.677083,23.634661;113.677027,23.634701;113....</td>\n",
       "      <td>右转</td>\n",
       "      <td>[]</td>\n",
       "      <td>博学路</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>沿中山路向西北行驶1.3千米右转</td>\n",
       "      <td>西北</td>\n",
       "      <td>1265</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>285</td>\n",
       "      <td>113.676788,23.634657;113.675265,23.636128;113....</td>\n",
       "      <td>右转</td>\n",
       "      <td>[]</td>\n",
       "      <td>中山路</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>沿温泉大道向东北行驶605米左转调头</td>\n",
       "      <td>东北</td>\n",
       "      <td>605</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>65</td>\n",
       "      <td>113.671428,23.644045;113.671636,23.644162;113....</td>\n",
       "      <td>左转调头</td>\n",
       "      <td>[]</td>\n",
       "      <td>温泉大道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>沿温泉大道向西南行驶3.4千米靠左沿主路行驶</td>\n",
       "      <td>西南</td>\n",
       "      <td>3360</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>245</td>\n",
       "      <td>113.676367,23.647088;113.675964,23.646745;113....</td>\n",
       "      <td>靠左</td>\n",
       "      <td>沿主路行驶</td>\n",
       "      <td>温泉大道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>沿温泉大道向西南行驶2.4千米右转</td>\n",
       "      <td>西南</td>\n",
       "      <td>2405</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>129</td>\n",
       "      <td>113.652435,23.627222;113.650165,23.625326;113....</td>\n",
       "      <td>右转</td>\n",
       "      <td>[]</td>\n",
       "      <td>温泉大道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>向西北行驶96米右转</td>\n",
       "      <td>西北</td>\n",
       "      <td>96</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>26</td>\n",
       "      <td>113.633056,23.615911;113.632743,23.616102;113....</td>\n",
       "      <td>右转</td>\n",
       "      <td>[]</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>向北行驶68米到达目的地</td>\n",
       "      <td>北</td>\n",
       "      <td>68</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>35</td>\n",
       "      <td>113.632266,23.616389;113.632287,23.616541;113....</td>\n",
       "      <td>[]</td>\n",
       "      <td>到达目的地</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               instruction orientation distance tolls toll_distance toll_road  \\\n",
       "0           向北行驶122米向左前方行驶           北      122     0             0        []   \n",
       "1        沿博学路向北行驶79米向左前方行驶           北       79     0             0        []   \n",
       "2          沿博学路向西北行驶118米左转          西北      118     0             0        []   \n",
       "3           沿博学路向西行驶163米右转           西      163     0             0        []   \n",
       "4            沿博学路向西行驶33米右转           西       33     0             0        []   \n",
       "5         沿中山路向西北行驶1.3千米右转          西北     1265     0             0        []   \n",
       "6       沿温泉大道向东北行驶605米左转调头          东北      605     0             0        []   \n",
       "7   沿温泉大道向西南行驶3.4千米靠左沿主路行驶          西南     3360     0             0        []   \n",
       "8        沿温泉大道向西南行驶2.4千米右转          西南     2405     0             0        []   \n",
       "9               向西北行驶96米右转          西北       96     0             0        []   \n",
       "10            向北行驶68米到达目的地           北       68     0             0        []   \n",
       "\n",
       "   duration                                           polyline  action  \\\n",
       "0        31  113.679596,23.632574;113.679596,23.632856;113....  向左前方行驶   \n",
       "1        23  113.679648,23.633689;113.679549,23.633967;113....  向左前方行驶   \n",
       "2        30  113.679375,23.634358;113.679249,23.634479;113....      左转   \n",
       "3        35  113.678555,23.635109;113.677856,23.635087;113....      右转   \n",
       "4        13  113.677083,23.634661;113.677027,23.634701;113....      右转   \n",
       "5       285  113.676788,23.634657;113.675265,23.636128;113....      右转   \n",
       "6        65  113.671428,23.644045;113.671636,23.644162;113....    左转调头   \n",
       "7       245  113.676367,23.647088;113.675964,23.646745;113....      靠左   \n",
       "8       129  113.652435,23.627222;113.650165,23.625326;113....      右转   \n",
       "9        26  113.633056,23.615911;113.632743,23.616102;113....      右转   \n",
       "10       35  113.632266,23.616389;113.632287,23.616541;113....      []   \n",
       "\n",
       "   assistant_action  road  \n",
       "0                []   NaN  \n",
       "1                []   博学路  \n",
       "2                []   博学路  \n",
       "3                []   博学路  \n",
       "4                []   博学路  \n",
       "5                []   中山路  \n",
       "6                []  温泉大道  \n",
       "7             沿主路行驶  温泉大道  \n",
       "8                []  温泉大道  \n",
       "9                []   NaN  \n",
       "10            到达目的地   NaN  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里用pandas展示清晰的驾车路径步骤\n",
    "df = pd.json_normalize(drive(map13,'113.679287,23.632575','113.632403,23.616941')['route']['paths'][0]['steps'])\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 路径规划(骑行)\n",
    "应用场景:用户可以调用此函数规划一些短距离但懒于走路的路径方案,考虑天桥、单行线、封路等情况，可以用于跨校区上课等"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中路径规划(骑行)函数\n",
    "from geo import ride"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': {'destination': '113.680193,23.634281',\n",
       "  'origin': '113.678280,23.628439',\n",
       "  'paths': [{'distance': 854,\n",
       "    'duration': 205,\n",
       "    'steps': [{'action': '右转',\n",
       "      'assistant_action': '',\n",
       "      'distance': 229,\n",
       "      'duration': 55,\n",
       "      'instruction': '向北骑行229米右转',\n",
       "      'orientation': '北',\n",
       "      'polyline': '113.678277,23.628438;113.67829,23.628607;113.67829,23.628607;113.678312,23.62872;113.678364,23.628837;113.67842,23.628898;113.678633,23.629019;113.678685,23.62908;113.678711,23.629188;113.678711,23.629336;113.678711,23.629336;113.678711,23.63036',\n",
       "      'road': '',\n",
       "      'walk_type': 0},\n",
       "     {'action': '向左前方行驶',\n",
       "      'assistant_action': '',\n",
       "      'distance': 159,\n",
       "      'duration': 38,\n",
       "      'instruction': '向东骑行159米向左前方行驶',\n",
       "      'orientation': '东',\n",
       "      'polyline': '113.678711,23.63036;113.678876,23.630399;113.678876,23.630399;113.679028,23.630425;113.679028,23.630425;113.679197,23.630469;113.679197,23.630469;113.679358,23.630516;113.67964,23.630634;113.67964,23.630634;113.68003,23.630768;113.68003,23.630768;113.680204,23.630838',\n",
       "      'road': '',\n",
       "      'walk_type': 0},\n",
       "     {'action': '左转',\n",
       "      'assistant_action': '',\n",
       "      'distance': 398,\n",
       "      'duration': 96,\n",
       "      'instruction': '向北骑行398米左转',\n",
       "      'orientation': '北',\n",
       "      'polyline': '113.680204,23.630838;113.680404,23.631089;113.680495,23.631237;113.680586,23.631432;113.680586,23.631432;113.680629,23.631536;113.680668,23.631736;113.680642,23.632135;113.68059,23.632522;113.68059,23.632522;113.680573,23.632674;113.680577,23.63283;113.680629,23.633012;113.680877,23.633442;113.680959,23.63378;113.680959,23.63378;113.680959,23.633954;113.680872,23.63424',\n",
       "      'road': '',\n",
       "      'walk_type': 0},\n",
       "     {'action': '',\n",
       "      'assistant_action': '到达目的地',\n",
       "      'distance': 68,\n",
       "      'duration': 16,\n",
       "      'instruction': '向西骑行68米到达目的地',\n",
       "      'orientation': '西',\n",
       "      'polyline': '113.680868,23.63424;113.680603,23.63424;113.680603,23.63424;113.680195,23.63424',\n",
       "      'road': '',\n",
       "      'walk_type': 0}]}]},\n",
       " 'errcode': 0,\n",
       " 'errdetail': None,\n",
       " 'errmsg': 'OK',\n",
       " 'ext': None}"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里分析的是中大南方南门到我的宿舍东13的骑行路径\n",
    "ride(map13,'113.678280,23.628439','113.680193,23.634281')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>action</th>\n",
       "      <th>assistant_action</th>\n",
       "      <th>distance</th>\n",
       "      <th>duration</th>\n",
       "      <th>instruction</th>\n",
       "      <th>orientation</th>\n",
       "      <th>polyline</th>\n",
       "      <th>road</th>\n",
       "      <th>walk_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>右转</td>\n",
       "      <td></td>\n",
       "      <td>229</td>\n",
       "      <td>55</td>\n",
       "      <td>向北骑行229米右转</td>\n",
       "      <td>北</td>\n",
       "      <td>113.678277,23.628438;113.67829,23.628607;113.6...</td>\n",
       "      <td></td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>向左前方行驶</td>\n",
       "      <td></td>\n",
       "      <td>159</td>\n",
       "      <td>38</td>\n",
       "      <td>向东骑行159米向左前方行驶</td>\n",
       "      <td>东</td>\n",
       "      <td>113.678711,23.63036;113.678876,23.630399;113.6...</td>\n",
       "      <td></td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>左转</td>\n",
       "      <td></td>\n",
       "      <td>398</td>\n",
       "      <td>96</td>\n",
       "      <td>向北骑行398米左转</td>\n",
       "      <td>北</td>\n",
       "      <td>113.680204,23.630838;113.680404,23.631089;113....</td>\n",
       "      <td></td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td></td>\n",
       "      <td>到达目的地</td>\n",
       "      <td>68</td>\n",
       "      <td>16</td>\n",
       "      <td>向西骑行68米到达目的地</td>\n",
       "      <td>西</td>\n",
       "      <td>113.680868,23.63424;113.680603,23.63424;113.68...</td>\n",
       "      <td></td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   action assistant_action  distance  duration     instruction orientation  \\\n",
       "0      右转                        229        55      向北骑行229米右转           北   \n",
       "1  向左前方行驶                        159        38  向东骑行159米向左前方行驶           东   \n",
       "2      左转                        398        96      向北骑行398米左转           北   \n",
       "3                    到达目的地        68        16    向西骑行68米到达目的地           西   \n",
       "\n",
       "                                            polyline road  walk_type  \n",
       "0  113.678277,23.628438;113.67829,23.628607;113.6...               0  \n",
       "1  113.678711,23.63036;113.678876,23.630399;113.6...               0  \n",
       "2  113.680204,23.630838;113.680404,23.631089;113....               0  \n",
       "3  113.680868,23.63424;113.680603,23.63424;113.68...               0  "
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里用pandas展示清晰的骑行路径步骤\n",
    "df = pd.json_normalize(ride(map13,'113.678280,23.628439','113.680193,23.634281')['data']['paths'][0]['steps'])\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 行政区域查询\n",
    "应用场景:用户可以调用此函数根据输入的搜索条件快速的查找特定的行政区域信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中行政区域查询函数\n",
    "from geo import district"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'count': '1',\n",
       " 'suggestion': {'keywords': [], 'cities': []},\n",
       " 'districts': [{'citycode': [],\n",
       "   'adcode': '440000',\n",
       "   'name': '广东省',\n",
       "   'center': '113.280637,23.125178',\n",
       "   'level': 'province',\n",
       "   'districts': [{'citycode': '0754',\n",
       "     'adcode': '440500',\n",
       "     'name': '汕头市',\n",
       "     'center': '116.708463,23.37102',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0757',\n",
       "     'adcode': '440600',\n",
       "     'name': '佛山市',\n",
       "     'center': '113.122717,23.028762',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0758',\n",
       "     'adcode': '441200',\n",
       "     'name': '肇庆市',\n",
       "     'center': '112.472529,23.051546',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0752',\n",
       "     'adcode': '441300',\n",
       "     'name': '惠州市',\n",
       "     'center': '114.412599,23.079404',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0755',\n",
       "     'adcode': '440300',\n",
       "     'name': '深圳市',\n",
       "     'center': '114.085947,22.547',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0759',\n",
       "     'adcode': '440800',\n",
       "     'name': '湛江市',\n",
       "     'center': '110.364977,21.274898',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0756',\n",
       "     'adcode': '440400',\n",
       "     'name': '珠海市',\n",
       "     'center': '113.553986,22.224979',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0768',\n",
       "     'adcode': '445100',\n",
       "     'name': '潮州市',\n",
       "     'center': '116.632301,23.661701',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0668',\n",
       "     'adcode': '440900',\n",
       "     'name': '茂名市',\n",
       "     'center': '110.919229,21.659751',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0750',\n",
       "     'adcode': '440700',\n",
       "     'name': '江门市',\n",
       "     'center': '113.094942,22.590431',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0762',\n",
       "     'adcode': '441600',\n",
       "     'name': '河源市',\n",
       "     'center': '114.697802,23.746266',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0766',\n",
       "     'adcode': '445300',\n",
       "     'name': '云浮市',\n",
       "     'center': '112.044439,22.929801',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0660',\n",
       "     'adcode': '441500',\n",
       "     'name': '汕尾市',\n",
       "     'center': '115.364238,22.774485',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0662',\n",
       "     'adcode': '441700',\n",
       "     'name': '阳江市',\n",
       "     'center': '111.975107,21.859222',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0663',\n",
       "     'adcode': '445200',\n",
       "     'name': '揭阳市',\n",
       "     'center': '116.355733,23.543778',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0753',\n",
       "     'adcode': '441400',\n",
       "     'name': '梅州市',\n",
       "     'center': '116.117582,24.299112',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '020',\n",
       "     'adcode': '440100',\n",
       "     'name': '广州市',\n",
       "     'center': '113.280637,23.125178',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0751',\n",
       "     'adcode': '440200',\n",
       "     'name': '韶关市',\n",
       "     'center': '113.591544,24.801322',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0763',\n",
       "     'adcode': '441800',\n",
       "     'name': '清远市',\n",
       "     'center': '113.051227,23.685022',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0760',\n",
       "     'adcode': '442000',\n",
       "     'name': '中山市',\n",
       "     'center': '113.382391,22.521113',\n",
       "     'level': 'city',\n",
       "     'districts': []},\n",
       "    {'citycode': '0769',\n",
       "     'adcode': '441900',\n",
       "     'name': '东莞市',\n",
       "     'center': '113.746262,23.046237',\n",
       "     'level': 'city',\n",
       "     'districts': []}]}]}"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 我们来查询一下广东省下市级行政区域\n",
    "district(map13,'广东')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>citycode</th>\n",
       "      <th>adcode</th>\n",
       "      <th>name</th>\n",
       "      <th>center</th>\n",
       "      <th>level</th>\n",
       "      <th>districts</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0754</td>\n",
       "      <td>440500</td>\n",
       "      <td>汕头市</td>\n",
       "      <td>116.708463,23.37102</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0757</td>\n",
       "      <td>440600</td>\n",
       "      <td>佛山市</td>\n",
       "      <td>113.122717,23.028762</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0758</td>\n",
       "      <td>441200</td>\n",
       "      <td>肇庆市</td>\n",
       "      <td>112.472529,23.051546</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0752</td>\n",
       "      <td>441300</td>\n",
       "      <td>惠州市</td>\n",
       "      <td>114.412599,23.079404</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0755</td>\n",
       "      <td>440300</td>\n",
       "      <td>深圳市</td>\n",
       "      <td>114.085947,22.547</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0759</td>\n",
       "      <td>440800</td>\n",
       "      <td>湛江市</td>\n",
       "      <td>110.364977,21.274898</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0756</td>\n",
       "      <td>440400</td>\n",
       "      <td>珠海市</td>\n",
       "      <td>113.553986,22.224979</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0768</td>\n",
       "      <td>445100</td>\n",
       "      <td>潮州市</td>\n",
       "      <td>116.632301,23.661701</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0668</td>\n",
       "      <td>440900</td>\n",
       "      <td>茂名市</td>\n",
       "      <td>110.919229,21.659751</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0750</td>\n",
       "      <td>440700</td>\n",
       "      <td>江门市</td>\n",
       "      <td>113.094942,22.590431</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0762</td>\n",
       "      <td>441600</td>\n",
       "      <td>河源市</td>\n",
       "      <td>114.697802,23.746266</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0766</td>\n",
       "      <td>445300</td>\n",
       "      <td>云浮市</td>\n",
       "      <td>112.044439,22.929801</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0660</td>\n",
       "      <td>441500</td>\n",
       "      <td>汕尾市</td>\n",
       "      <td>115.364238,22.774485</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>0662</td>\n",
       "      <td>441700</td>\n",
       "      <td>阳江市</td>\n",
       "      <td>111.975107,21.859222</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0663</td>\n",
       "      <td>445200</td>\n",
       "      <td>揭阳市</td>\n",
       "      <td>116.355733,23.543778</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0753</td>\n",
       "      <td>441400</td>\n",
       "      <td>梅州市</td>\n",
       "      <td>116.117582,24.299112</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>020</td>\n",
       "      <td>440100</td>\n",
       "      <td>广州市</td>\n",
       "      <td>113.280637,23.125178</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0751</td>\n",
       "      <td>440200</td>\n",
       "      <td>韶关市</td>\n",
       "      <td>113.591544,24.801322</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>0763</td>\n",
       "      <td>441800</td>\n",
       "      <td>清远市</td>\n",
       "      <td>113.051227,23.685022</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0760</td>\n",
       "      <td>442000</td>\n",
       "      <td>中山市</td>\n",
       "      <td>113.382391,22.521113</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0769</td>\n",
       "      <td>441900</td>\n",
       "      <td>东莞市</td>\n",
       "      <td>113.746262,23.046237</td>\n",
       "      <td>city</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   citycode  adcode name                center level districts\n",
       "0      0754  440500  汕头市   116.708463,23.37102  city        []\n",
       "1      0757  440600  佛山市  113.122717,23.028762  city        []\n",
       "2      0758  441200  肇庆市  112.472529,23.051546  city        []\n",
       "3      0752  441300  惠州市  114.412599,23.079404  city        []\n",
       "4      0755  440300  深圳市     114.085947,22.547  city        []\n",
       "5      0759  440800  湛江市  110.364977,21.274898  city        []\n",
       "6      0756  440400  珠海市  113.553986,22.224979  city        []\n",
       "7      0768  445100  潮州市  116.632301,23.661701  city        []\n",
       "8      0668  440900  茂名市  110.919229,21.659751  city        []\n",
       "9      0750  440700  江门市  113.094942,22.590431  city        []\n",
       "10     0762  441600  河源市  114.697802,23.746266  city        []\n",
       "11     0766  445300  云浮市  112.044439,22.929801  city        []\n",
       "12     0660  441500  汕尾市  115.364238,22.774485  city        []\n",
       "13     0662  441700  阳江市  111.975107,21.859222  city        []\n",
       "14     0663  445200  揭阳市  116.355733,23.543778  city        []\n",
       "15     0753  441400  梅州市  116.117582,24.299112  city        []\n",
       "16      020  440100  广州市  113.280637,23.125178  city        []\n",
       "17     0751  440200  韶关市  113.591544,24.801322  city        []\n",
       "18     0763  441800  清远市  113.051227,23.685022  city        []\n",
       "19     0760  442000  中山市  113.382391,22.521113  city        []\n",
       "20     0769  441900  东莞市  113.746262,23.046237  city        []"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里也用pandas清晰罗列市级行政区域\n",
    "pd.json_normalize(district(map13,'广东')[\"districts\"][0]['districts'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 搜索POI\n",
    "应用场景:用户可以调用此函数根据POI的关键字进行条件搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中搜索POI函数\n",
    "from geo import poi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'suggestion': {'keywords': [], 'cities': []},\n",
       " 'count': '152',\n",
       " 'infocode': '10000',\n",
       " 'pois': [{'parent': [],\n",
       "   'address': '温泉大道882号',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;学校;高等院校',\n",
       "   'photos': [],\n",
       "   'typecode': '141201',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院',\n",
       "   'location': '113.679262,23.632583',\n",
       "   'tel': '020-61787331',\n",
       "   'shopid': [],\n",
       "   'id': 'B00140MR9A'},\n",
       "  {'parent': 'B0FFMCZOK0',\n",
       "   'address': '温泉大道882',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '通行设施;临街院门;临街院门',\n",
       "   'photos': [],\n",
       "   'typecode': '991400',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': '101',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院(西北门)',\n",
       "   'location': '113.672109,23.643371',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B00141JCWL'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;学校;高等院校',\n",
       "   'photos': [],\n",
       "   'typecode': '141201',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院',\n",
       "   'location': '113.671493,23.643831',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFMCZOK0'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '温泉大道886号中山大学南方学院内',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;学校;学校',\n",
       "   'photos': [],\n",
       "   'typecode': '141200',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院-综合楼',\n",
       "   'location': '113.680117,23.631544',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFF2VMJ4'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '中山路',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院音乐系',\n",
       "   'location': '113.678792,23.635389',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFKPXMCN'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '温泉大道882号',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '通行设施;临街院门;临街院门',\n",
       "   'photos': [],\n",
       "   'typecode': '991400',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': '101',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院(东南门)',\n",
       "   'location': '113.678733,23.628290',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFK8J7XY'},\n",
       "  {'parent': 'B0FFMCZOK0',\n",
       "   'address': '温泉大道882',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '通行设施;临街院门;临街院门',\n",
       "   'photos': [],\n",
       "   'typecode': '991400',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': '101',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院(正门)',\n",
       "   'location': '113.671663,23.643941',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0G06MOP96'},\n",
       "  {'parent': [],\n",
       "   'address': '神岗镇',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;学校;小学',\n",
       "   'photos': [],\n",
       "   'typecode': '141203',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院附属小学',\n",
       "   'location': '113.522758,23.473157',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFLA7KQW'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道882号中山大学南方学院',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;学校;学校',\n",
       "   'photos': [],\n",
       "   'typecode': '141200',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院-综合楼',\n",
       "   'location': '113.677892,23.628958',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFLFILKM'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '中山大学南方学院',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院教学楼9号',\n",
       "   'location': '113.679747,23.633032',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFLFIY0N'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '博学路4附近',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院西区饭堂',\n",
       "   'location': '113.676210,23.632177',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFJLW0O9'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '博学路21',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院教学楼2号',\n",
       "   'location': '113.677060,23.631346',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B00141TRVH'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '博学路',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院教学楼10号',\n",
       "   'location': '113.680125,23.633492',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFFTC9PH'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '温泉大道882号中山大学南方学院',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院-第11教学楼',\n",
       "   'location': '113.680037,23.633173',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFJKIA10'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '博学路',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院教学楼8号',\n",
       "   'location': '113.680399,23.634329',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B00141WQCO'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '博学路7',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;学校;高等院校',\n",
       "   'photos': [],\n",
       "   'typecode': '141201',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院教学楼7号',\n",
       "   'location': '113.678600,23.633330',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B00141TQGR'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '温泉大道882号中山大学南方学院新综合楼二楼',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院达人书院',\n",
       "   'location': '113.679041,23.632392',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFM4JIF8'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '博学路29',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院教学楼4号',\n",
       "   'location': '113.677460,23.630490',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B00141TR76'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '博学路附近',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院1号实验楼',\n",
       "   'location': '113.678215,23.631370',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFKP9ET5'},\n",
       "  {'parent': 'B00140MR9A',\n",
       "   'address': '温泉镇博学路中山大学南方学院9号教学楼',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '科教文化服务;科教文化场所;科教文化场所',\n",
       "   'photos': [],\n",
       "   'typecode': '140000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': '309',\n",
       "   'adname': '从化区',\n",
       "   'name': '中山大学南方学院-政商研究院',\n",
       "   'location': '113.680427,23.633994',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFL9B0QY'}],\n",
       " 'status': '1',\n",
       " 'info': 'OK'}"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我们以\"中大南方\"的关键字进行条件搜索\n",
    "poi(map13,'中山大学南方学院')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 周边搜索\n",
    "应用场景:用户可以调用此函数在设定的范围内，按照关键字或POI类型进行搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中周边搜索函数\n",
    "from geo import poi_aroundsearch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'suggestion': {'keywords': [], 'cities': []},\n",
       " 'count': '409',\n",
       " 'infocode': '10000',\n",
       " 'pois': [{'parent': [],\n",
       "   'address': '温泉镇畔岛一街4号',\n",
       "   'distance': '0',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;广东菜(粤菜)',\n",
       "   'photos': [],\n",
       "   'typecode': '050103',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '方圆·云雅酒店餐饮',\n",
       "   'location': '113.632403,23.616941',\n",
       "   'tel': '020-87880088',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFKT86B8'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇政府对面斜坡直上三百米(刘仙姑庙停车场旁)',\n",
       "   'distance': '12',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '云台山私房菜',\n",
       "   'location': '113.632299,23.616995',\n",
       "   'tel': '13926137066',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFJCP2UU'},\n",
       "  {'parent': [],\n",
       "   'address': '从化温泉镇温泉大道836号',\n",
       "   'distance': '35',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'type': '商务住宅;住宅区;住宅区',\n",
       "   'photos': [],\n",
       "   'typecode': '120300',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '富力泉天下银泉别墅',\n",
       "   'location': '113.632546,23.616653',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFFYWR17'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇明月山溪逢源里三街',\n",
       "   'distance': '38',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'type': '商务住宅;商务住宅相关;商务住宅相关',\n",
       "   'photos': [],\n",
       "   'typecode': '120000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '广州旅游别墅',\n",
       "   'location': '113.632456,23.616603',\n",
       "   'tel': '13929532991',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFH682CY'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道399号(温泉镇政府旁)',\n",
       "   'distance': '80',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '桃李园农家菜',\n",
       "   'location': '113.633172,23.617092',\n",
       "   'tel': '020-87832123',\n",
       "   'shopid': [],\n",
       "   'id': 'B00141JCU0'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道678号',\n",
       "   'distance': '157',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '万达农庄',\n",
       "   'location': '113.633875,23.616519',\n",
       "   'tel': '13725309315;020-87832169;13922390169',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFGD2VIF'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道342附近',\n",
       "   'distance': '198',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'type': '生活服务;生活服务场所;生活服务场所',\n",
       "   'photos': [],\n",
       "   'typecode': '070000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '众善木雕厂家店',\n",
       "   'location': '113.632909,23.615221',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFIIIH5Q'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇温泉大道371号',\n",
       "   'distance': '298',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅|体育休闲服务;休闲场所;休闲场所',\n",
       "   'photos': [],\n",
       "   'typecode': '050100|080500',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '君雅农庄',\n",
       "   'location': '113.631762,23.614329',\n",
       "   'tel': '13826283877;13922787887',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFFYPGZ5'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道411',\n",
       "   'distance': '341',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'type': '商务住宅;产业园区;产业园区',\n",
       "   'photos': [],\n",
       "   'typecode': '120100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '广州艺科创新创业孵化基地',\n",
       "   'location': '113.635153,23.618691',\n",
       "   'tel': '020-37977331',\n",
       "   'shopid': [],\n",
       "   'id': 'B0G17LXRHD'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇温泉大道413号',\n",
       "   'distance': '355',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'type': '商务住宅;商务住宅相关;商务住宅相关',\n",
       "   'photos': [],\n",
       "   'typecode': '120000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '广州艺科风暴创新创业孵化基地',\n",
       "   'location': '113.634874,23.619189',\n",
       "   'tel': '020-37977331',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFJKS6XK'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇云星大道流溪河畔华辉度假村',\n",
       "   'distance': '504',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '华辉度假村-餐厅',\n",
       "   'location': '113.634310,23.621130',\n",
       "   'tel': '020-87832388',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFF4WXNX'},\n",
       "  {'parent': [],\n",
       "   'address': '935县道温泉乌石河堤村委路口旁',\n",
       "   'distance': '521',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;餐饮相关场所;餐饮相关',\n",
       "   'photos': [],\n",
       "   'typecode': '050000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '乌石农家菜',\n",
       "   'location': '113.629195,23.620590',\n",
       "   'tel': '13724109299',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFJ7IK2Q'},\n",
       "  {'parent': [],\n",
       "   'address': '从化温泉镇105国道旁',\n",
       "   'distance': '686',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '聚源农庄',\n",
       "   'location': '113.635523,23.622401',\n",
       "   'tel': '13924000200;13724050661',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFF4TEGJ'},\n",
       "  {'parent': [],\n",
       "   'address': 'X935与乌石大街交叉口西北方向150米',\n",
       "   'distance': '693',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;餐饮相关场所;餐饮相关',\n",
       "   'photos': [],\n",
       "   'typecode': '050000',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '陶醉居美食农庄(特色野菜无花果浸鸡)',\n",
       "   'location': '113.628524,23.621981',\n",
       "   'tel': '13128292508',\n",
       "   'shopid': [],\n",
       "   'id': 'B0GDCA8FE3'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道348号附近',\n",
       "   'distance': '700',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '高安饭店',\n",
       "   'location': '113.631194,23.610748',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFIIIH5A'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道460西北90米',\n",
       "   'distance': '724',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'type': '生活服务;物流速递;物流速递',\n",
       "   'photos': [],\n",
       "   'typecode': '070500',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '申通快递',\n",
       "   'location': '113.630585,23.610650',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFL6PGV2'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道与花卉大道交叉口东北100米',\n",
       "   'distance': '727',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'type': '生活服务;物流速递;物流速递',\n",
       "   'photos': [],\n",
       "   'typecode': '070500',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '韵达',\n",
       "   'location': '113.630579,23.610626',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFI5R0GW'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇温泉大道317号',\n",
       "   'distance': '727',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '锦兴美食',\n",
       "   'location': '113.630579,23.610625',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFL1JFMY'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉大道460附近',\n",
       "   'distance': '770',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;中餐厅;中餐厅',\n",
       "   'photos': [],\n",
       "   'typecode': '050100',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '蜂王馆',\n",
       "   'location': '113.630234,23.610355',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFM3WQYA'},\n",
       "  {'parent': [],\n",
       "   'address': '温泉镇温泉大道299号',\n",
       "   'distance': '773',\n",
       "   'biz_ext': [],\n",
       "   'importance': [],\n",
       "   'biz_type': 'diner',\n",
       "   'type': '餐饮服务;餐饮相关场所;餐饮相关',\n",
       "   'photos': [],\n",
       "   'typecode': '050000',\n",
       "   'shopinfo': '1',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'name': '甘稻农庄',\n",
       "   'location': '113.630384,23.610242',\n",
       "   'tel': '13922391395',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFJY7O14'}],\n",
       " 'status': '1',\n",
       " 'info': 'OK'}"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我们以温泉镇附近的范围进行搜索\n",
    "poi_aroundsearch(map13,'113.632403,23.616941')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多边形搜索\n",
    "应用场景:用户可以调用此函数在多边形区域内进行搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中多边形搜索函数\n",
    "from geo import poi_polygonsearch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'suggestion': {'keywords': [], 'cities': []},\n",
       " 'count': '897',\n",
       " 'infocode': '10000',\n",
       " 'pois': [{'parent': [],\n",
       "   'address': '花东镇机场大道东888号',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;机场相关;飞机场',\n",
       "   'photos': [],\n",
       "   'typecode': '150104',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '广州白云国际机场',\n",
       "   'location': '113.307605,23.389929',\n",
       "   'tel': '020-96158',\n",
       "   'shopid': [],\n",
       "   'id': 'B00140NZIQ'},\n",
       "  {'parent': [],\n",
       "   'address': '白云大道北1689号',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'photos': [],\n",
       "   'typecode': '120302',\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '岭南新世界',\n",
       "   'location': '113.296427,23.233791',\n",
       "   'tel': '020-61118888;020-61199557',\n",
       "   'shopid': [],\n",
       "   'id': 'B0FFF9XSF0'},\n",
       "  {'parent': [],\n",
       "   'address': '(在建)14号线二期;14号线;2号线;3号线北延段',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '嘉禾望岗(地铁站)',\n",
       "   'location': '113.289243,23.237460',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10024352'},\n",
       "  {'parent': [],\n",
       "   'address': '3号线北延段',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '龙归(地铁站)',\n",
       "   'location': '113.300834,23.288736',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10024351'},\n",
       "  {'parent': [],\n",
       "   'address': '3号线北延段',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '花都区',\n",
       "   'name': '机场南(1号航站楼)(地铁站)',\n",
       "   'location': '113.303097,23.386690',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10024349'},\n",
       "  {'parent': [],\n",
       "   'address': '(在建)14号线二期',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '创意园(地铁站)',\n",
       "   'location': '113.265497,23.211293',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV11031578'},\n",
       "  {'parent': [],\n",
       "   'address': '(在建)14号线二期',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '鹤南(地铁站)',\n",
       "   'location': '113.271787,23.221347',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV11031576'},\n",
       "  {'parent': [],\n",
       "   'address': '(在建)14号线二期',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '彭边(地铁站)',\n",
       "   'location': '113.284092,23.226712',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV11031575'},\n",
       "  {'parent': [],\n",
       "   'address': '(在建)12号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '小金钟(地铁站)',\n",
       "   'location': '113.275888,23.174342',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV11030737'},\n",
       "  {'parent': [],\n",
       "   'address': '(在建)12号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '云溪公园(地铁站)',\n",
       "   'location': '113.279605,23.183810',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV11030735'},\n",
       "  {'parent': [],\n",
       "   'address': '(在建)12号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '景云路(地铁站)',\n",
       "   'location': '113.273151,23.164779',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV11030732'},\n",
       "  {'parent': [],\n",
       "   'address': '3号线北延段',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '人和(地铁站)',\n",
       "   'location': '113.295995,23.335224',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10022634'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线;14号线支线/知识城线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '新和(地铁站)',\n",
       "   'location': '113.467060,23.413259',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851528'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '钟落潭(地铁站)',\n",
       "   'location': '113.400686,23.375649',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851527'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '马沥(地铁站)',\n",
       "   'location': '113.450388,23.393877',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851525'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '白云东平(地铁站)',\n",
       "   'location': '113.317841,23.251170',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851523'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '竹料(地铁站)',\n",
       "   'location': '113.368332,23.348496',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851521'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '从化区',\n",
       "   'name': '神岗(地铁站)',\n",
       "   'location': '113.517396,23.475101',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851519'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '白云区',\n",
       "   'name': '太和(地铁站)',\n",
       "   'location': '113.347197,23.299284',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851517'},\n",
       "  {'parent': [],\n",
       "   'address': '14号线',\n",
       "   'distance': [],\n",
       "   'biz_ext': [],\n",
       "   'pname': '广东省',\n",
       "   'importance': [],\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'childtype': [],\n",
       "   'adname': '从化区',\n",
       "   'name': '太平(地铁站)',\n",
       "   'location': '113.491955,23.452090',\n",
       "   'tel': [],\n",
       "   'shopid': [],\n",
       "   'id': 'BV10851513'}],\n",
       " 'status': '1',\n",
       " 'info': 'OK'}"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我用从化区、白云区和花都区组成一个三角形，在这个区域内进行搜索\n",
    "poi_polygonsearch(map13,'113.586605,23.548852|113.220218,23.404165|113.273289,23.157290')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ID查询\n",
    "应用场景:用户可以调用此函数根据已有的POI ID，查询某个POI详情"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中ID查询函数\n",
    "from geo import poi_idsearch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'count': '1',\n",
       " 'infocode': '10000',\n",
       " 'pois': [{'parent': [],\n",
       "   'distance': [],\n",
       "   'pcode': '440000',\n",
       "   'importance': [],\n",
       "   'biz_ext': {'cost': [], 'rating': []},\n",
       "   'recommend': '0',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'photos': [],\n",
       "   'discount_num': '0',\n",
       "   'gridcode': '3513134901',\n",
       "   'typecode': '150500',\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'deep_info': {'deepsrc': []},\n",
       "   'citycode': '020',\n",
       "   'adname': '从化区',\n",
       "   'indoor_src': [],\n",
       "   'children': [],\n",
       "   'tel': [],\n",
       "   'id': 'BV10851513',\n",
       "   'tag': [],\n",
       "   'event': [],\n",
       "   'entr_location': [],\n",
       "   'indoor_map': '0',\n",
       "   'email': [],\n",
       "   'timestamp': '2020-11-14 18:36:02',\n",
       "   'website': [],\n",
       "   'address': '14号线',\n",
       "   'adcode': '440117',\n",
       "   'pname': '广东省',\n",
       "   'biz_type': [],\n",
       "   'cityname': '广州市',\n",
       "   'postcode': [],\n",
       "   'match': '0',\n",
       "   'business_area': '太平',\n",
       "   'indoor_data': {'cmsid': [], 'truefloor': [], 'cpid': [], 'floor': []},\n",
       "   'childtype': [],\n",
       "   'rich_content': [],\n",
       "   'exit_location': [],\n",
       "   'name': '太平(地铁站)',\n",
       "   'location': '113.491955,23.452090',\n",
       "   'shopid': [],\n",
       "   'navi_poiid': [],\n",
       "   'groupbuy_num': '0'}],\n",
       " 'status': '1',\n",
       " 'info': 'OK'}"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我随机选取了上面多边形查询里‘太平地铁站’的ID来分析\n",
    "poi_idsearch(map13,'BV10851513')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## IP定位\n",
    "应用场景:用户可以调用此函数根据已有的IP地址，快速定位IP的所在位置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中IP定位函数\n",
    "from geo import ip"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'province': '广东省',\n",
       " 'city': '中山市',\n",
       " 'adcode': '442000',\n",
       " 'rectangle': '113.3123767,22.44985408;113.4682238,22.58118523'}"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我选用的是中山市的IP地址\n",
    "ip(map13,'219.128.0.0')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 静态地图\n",
    "应用场景:用户可以调用此函数，获取目标地的静态地图（可以直观看见附近有啥），代码人也可以将高德地图以图片形式嵌入自己的网页中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中静态地图函数\n",
    "from geo import staticmap"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<PIL.PngImagePlugin.PngImageFile image mode=P size=555x555 at 0x18EE31EE8B0>"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我调取的是我的宿舍楼栋东13及其周围的静态地图（默认400*400，我改成了555*555）\n",
    "staticmap(map13,'113.680193,23.634281')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 坐标转换\n",
    "应用场景:用户可以调用此函数把非高德坐标（GPS坐标、mapbar坐标、baidu坐标）转换成高德坐标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中坐标转换函数\n",
    "from geo import convert"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'ok',\n",
       " 'infocode': '10000',\n",
       " 'locations': '108.948021,34.263161'}"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 这里我用的是陕西的一处GPS坐标\n",
    "convert(map13,'108.948021,34.263161')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 天气查询\n",
    "应用场景:用户可以调用此函数根据输入的adcode，查询目标区域当前/未来的天气情况，适合出门前看看"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中天气查询函数\n",
    "from geo import weather"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'count': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'forecasts': [{'city': '从化区',\n",
       "   'adcode': '440117',\n",
       "   'province': '广东',\n",
       "   'reporttime': '2020-11-16 15:22:32',\n",
       "   'casts': [{'date': '2020-11-16',\n",
       "     'week': '1',\n",
       "     'dayweather': '多云',\n",
       "     'nightweather': '多云',\n",
       "     'daytemp': '27',\n",
       "     'nighttemp': '19',\n",
       "     'daywind': '北',\n",
       "     'nightwind': '北',\n",
       "     'daypower': '≤3',\n",
       "     'nightpower': '≤3'},\n",
       "    {'date': '2020-11-17',\n",
       "     'week': '2',\n",
       "     'dayweather': '多云',\n",
       "     'nightweather': '多云',\n",
       "     'daytemp': '27',\n",
       "     'nighttemp': '20',\n",
       "     'daywind': '北',\n",
       "     'nightwind': '北',\n",
       "     'daypower': '≤3',\n",
       "     'nightpower': '≤3'},\n",
       "    {'date': '2020-11-18',\n",
       "     'week': '3',\n",
       "     'dayweather': '小雨',\n",
       "     'nightweather': '小雨',\n",
       "     'daytemp': '26',\n",
       "     'nighttemp': '21',\n",
       "     'daywind': '北',\n",
       "     'nightwind': '北',\n",
       "     'daypower': '≤3',\n",
       "     'nightpower': '≤3'},\n",
       "    {'date': '2020-11-19',\n",
       "     'week': '4',\n",
       "     'dayweather': '小雨',\n",
       "     'nightweather': '多云',\n",
       "     'daytemp': '26',\n",
       "     'nighttemp': '20',\n",
       "     'daywind': '东南',\n",
       "     'nightwind': '东南',\n",
       "     'daypower': '≤3',\n",
       "     'nightpower': '≤3'}]}]}"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 我们来看看从化今天天气如何\n",
    "weather(map13,'从化')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 输入提示\n",
    "应用场景:用户可以调用此函数根据输入的关键词查询返回建议列表，适合初来乍到一个新地方不知道附近有什么的时候用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用geo.py中输入提示函数\n",
    "from geo import input_prompt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'count': '10',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'tips': [{'id': [],\n",
       "   'name': '烤鱼',\n",
       "   'district': [],\n",
       "   'adcode': [],\n",
       "   'location': [],\n",
       "   'address': [],\n",
       "   'typecode': [],\n",
       "   'city': []},\n",
       "  {'id': 'B0FFLDQ585',\n",
       "   'name': '烤鱼大叔·香辣无骨烤鱼饭(公园前店)',\n",
       "   'district': '广东省广州市越秀区',\n",
       "   'adcode': '440104',\n",
       "   'location': '113.268428,23.126743',\n",
       "   'address': '中山五路昌兴街24号',\n",
       "   'typecode': '050100',\n",
       "   'city': []},\n",
       "  {'id': 'B00141RZAZ',\n",
       "   'name': '年年烤鱼',\n",
       "   'district': '广东省广州市天河区',\n",
       "   'adcode': '440106',\n",
       "   'location': '113.317045,23.131937',\n",
       "   'address': '广和路33号',\n",
       "   'typecode': '050100',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFFA5ZG6',\n",
       "   'name': '探鱼-炭火烤鱼(VT101店)',\n",
       "   'district': '广东省广州市天河区',\n",
       "   'adcode': '440106',\n",
       "   'location': '113.321251,23.134787',\n",
       "   'address': '体育西路101号维多利广场5层507单元(近体育西站E出口)',\n",
       "   'typecode': '050118',\n",
       "   'city': []},\n",
       "  {'id': 'B0GRNLBEGX',\n",
       "   'name': '烤鱼研究所·特色烤鱼饭(珠江新城店)',\n",
       "   'district': '广东省广州市天河区',\n",
       "   'adcode': '440106',\n",
       "   'location': '113.318242,23.119090',\n",
       "   'address': '花城大道20号地下1层B102房自编13号',\n",
       "   'typecode': '050000',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFG92LKG',\n",
       "   'name': '炉火鱼香时尚烤鱼主题餐厅(珠影星光城店)',\n",
       "   'district': '广东省广州市海珠区',\n",
       "   'adcode': '440105',\n",
       "   'location': '113.321065,23.094443',\n",
       "   'address': '新港中路354号星光城二层204铺(地铁客村站D出口)',\n",
       "   'typecode': '050118',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFIB5OJM',\n",
       "   'name': '烤鱼烧烤',\n",
       "   'district': '广东省广州市白云区',\n",
       "   'adcode': '440111',\n",
       "   'location': '113.230797,23.146122',\n",
       "   'address': '高桥路67-3号附近',\n",
       "   'typecode': '050100',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFLHUZCD',\n",
       "   'name': '烤鱼',\n",
       "   'district': '广东省广州市荔湾区',\n",
       "   'adcode': '440103',\n",
       "   'location': '113.247961,23.076290',\n",
       "   'address': '鹤洞大街8号附近',\n",
       "   'typecode': '050100',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFLED69Z',\n",
       "   'name': '烤鱼酸菜鱼烧烤',\n",
       "   'district': '广东省广州市天河区',\n",
       "   'adcode': '440106',\n",
       "   'location': '113.323780,23.167665',\n",
       "   'address': '牛利岗南街13号附近',\n",
       "   'typecode': '050100',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFHFIAGJ',\n",
       "   'name': '烤鱼砂锅粥',\n",
       "   'district': '广东省广州市海珠区',\n",
       "   'adcode': '440105',\n",
       "   'location': '113.291701,23.067522',\n",
       "   'address': '晓港湾清华街275号',\n",
       "   'typecode': '050100',\n",
       "   'city': []}]}"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 输入烤鱼，看看在广州这个范围内会跳出什么？\n",
    "input_prompt(map13,'烤鱼',city='广州')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 终于调用完了（有些功能如'批量请求接口'、'交通态势'已停止向新用户开放）"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
